package cn.biplam.front.component.data.tree.treebase;

import cn.biplam.common.wrapper.ErrorMessage;
import cn.biplam.front.component.AjxResponse;
import cn.biplam.front.component.data.tree.TreeData;
import cn.biplam.front.component.data.tree.treebase.Tree_Type.Tree_DC_Type;

/**
 * 树的DC抽象类，负责生成树模版需要的数据
 * @author WangSong 2009-10-12下午02:14:37
 * @version 1.0
 */
public abstract class TreeDC extends AjxResponse{

	/** 单棵树时是否显示虚根*/
	protected boolean virtualNodeVisiable=false;
	/** 虚根名称*/
	protected String VirtualRootName;
	
	/**
	 *  设置虚根节点是否显示
	 * @param virtualNodeVisialble
	 */
	public void setVirtualNodeVisiable(boolean virtualNodeVisialble){
		this.virtualNodeVisiable = virtualNodeVisialble;
	}
	
	/**
	 * 取树的数据
	 * @return TreeData 树的数据
	 * @throws ErrorMessage
	 */
	public abstract TreeData get() throws ErrorMessage ;
	
	/**
	 * 取DCTree的类型
	 * @return Tree_DC_Type 索引树、父子树、自定义树
	 * @throws ErrorMessage
	 */
	public abstract Tree_DC_Type getType() throws ErrorMessage ;
	
	/**
	 * 取Tree对应的表名称(TreeDcIndex用)
	 * @return String DcTree用的表名称
	 * @throws ErrorMessage
	 */
	public abstract String getTableName() throws ErrorMessage ;
	
	/**
	 * 取operatorId,用于父子树和自定义树取树的操作id
	 * @return String 返回operatorId
	 * @throws ErrorMessage
	 */
	public abstract String getOperatorId() throws ErrorMessage ;
	
	/**
	 * 取operatorId用的参数id,用于父子树和自定义树取树的操作参数
	 * @return 父子树和自定义树的自定义查询的参数
	 * @throws ErrorMessage
	 */
	public abstract String getRowId()  throws ErrorMessage ;
	
	/**
	 * 取父子树的树字段映射参数,顺序如下
	 *   NODE_ID,NODE_NAME,NODE_PARENT,NODE_TYPE,OPERATOR_TYPE,NODE_CODE
	 * @return String 字段映射字符串
	 * @throws ErrorMessage
	 */
	public abstract String getField()  throws ErrorMessage ;
	
	/**
	 * 返回dc的虚根
	 * @return
	 */
	public String getVirRootName(){
		return VirtualRootName;
	}
}
